package cn.wolfcode.luowowo.util;

import cn.wolfcode.luowowo.exception.LogicException;
import cn.wolfcode.luowowo.redis.srevice.IUserRedisSrevice;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;

import java.util.Collections;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/**
 * 注册时候的数据判空
 */
@Data
public class AssertUtil  {
    
    @Autowired
    private static IUserRedisSrevice userRedisSrevice;
    
    
    //注册信息进行判空
    public static void hasLength(String reg,String message){
        if (!StringUtils.hasLength(reg)) {
            /*如果传进来的值是空 就抛出异常 自定义的异常*/
            throw new LogicException(message);
        }
    }
   //注册信息进行判空
    public static void intNotNull(Integer reg,String message){
        if (reg == null || "".equals(reg)) {
            // 如果传进来的值是空 就抛出异常 自定义的异常
            throw new LogicException(message);
        }
    }
    //两次密码进行一致判断
    public static void unanimous(String password, String rpassword) {
        /*首先对密码进行非空判断,因为工具类的执行顺序是不能保证的,所以虽然前面进行了非空判断,但是后面也一样要进行判断
        */
        if (!StringUtils.hasLength(password) && !StringUtils.hasLength(rpassword)) {
            /*如果传进来的值是空 就抛出异常 自定义的异常*/
            throw new LogicException("密码不能为空");
        }else if (!password.equals(rpassword)){
            /*如果前后两次的密码不一致,抛异常*/
            throw new LogicException("两次密码不一致,请重新输入");
        }
        
   
    }
    //号码格式的判断
    public static void phoneFormat(String phone, String msg) {
        /*使用正则表达式对手机号码进行判断*/
        Pattern compile = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$");
        /*传入值进行格式判断*/
        Matcher matcher = compile.matcher(phone);
        //进行判断,如果号码没有效果,抛出异常
        if (!matcher.matches()){
            /*抛出异常统一管理*/
            throw new LogicException(msg);
        }
    }
    //验证码的判断
    public static void verByRedis(Boolean success, String msg) {
        //进行判断,可以不用返回数据,如果错误就抛出异常
        if (!success){
            throw new LogicException(msg);
        }
    }
    //集合判空
    public static void listNotNull(List<String> refIds, String s) {
        if (refIds==null){
            throw new LogicException(s);
        }
    }
}
